let Promise = require("./promise");
Promise.resolve()
  .then(() => {
    console.log(0);

    // ecmascript 规定了 如果返回的是一个promise ，这个时候会在产生一个额外的微任务来延迟执行
    return new Promise((resolve) => {
      // 会产生两个微任务
      // x.then() 空的then来获取promise的状态
      resolve("a");
    });
  })
  .then((res) => {
    console.log(res);
  });

// 【, ，3，‘a】
// 0，1，2，3,‘a,4,5
Promise.resolve()
  .then(() => {
    console.log(1);
  })
  .then(() => {
    console.log(2);
  })
  .then(() => {
    console.log(3);
  })
  .then(() => {
    console.log(4);
  })
  .then(() => {
    console.log(5);
  });
// promise的下一个then 要等待上一个then的返回值决定下一个then
// 微任务 [，,3]

// 0,1,2,a,3,4,5
